package com.xiong.wuliao.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ScrollView;

import com.xiong.wuliao.R;

/**
 * 自定义容器：ScrollView下嵌套GridView
 * Created by Administrator on 2016/10/20.
 */
public class MyPullToView extends LinearLayout {

    private MyScrollView myScrollView; // 自定义ScrollView
    private MyGridView myGridView;     // 自定义GridView
    //private LinearLayout myFootView;   // 显示"数据正在加载"的容器
    //private TextView myShowMessage;    // 显示"数据正在加载"的控件

    //private static boolean loadDataOrNot = false; // 标记数据是否正在加载，默认为否
    private int horizontalSpacing = 10; // 设置GridView的水平间距
    private int verticalSpacing = 10; // 设置GridView的垂直间距
    private int numColumns = 3; // 设置GridView的列数，默认为3列

    public MyPullToView(Context context, AttributeSet attrs) {
        super(context, attrs);

//        if (context instanceof CallBackLoadOrRefreshPull){
//            myCallBackLoadOrRefreshPull = (CallBackLoadOrRefreshPull) context;
//        }

        init(context);
    }

    /**
     * 初始化组合控件
     *
     * @param context
     */
    private void init(Context context) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view = inflater.inflate(R.layout.layout_pulltoview, this);
        findView(view);
    }

    /**
     * 找到组合需要的控件
     *
     * @param view
     */
    private void findView(View view) {
        myScrollView = (MyScrollView) view.findViewById(R.id.myScrollView);
        myGridView = (MyGridView) view.findViewById(R.id.myGridView);
        //myFootView = (LinearLayout) view.findViewById(R.id.myFootView);
        //myShowMessage = (TextView) view.findViewById(R.id.myShowMessage);

        //myScrollView.setCallBackLoadOrRefreshListener(new MyCallBackLoadOrRefresh());

        initGrid();
    }

    /**
     * 初始化GridView
     */
    private void initGrid() {
        myGridView.setNumColumns(numColumns);
        myGridView.setHorizontalSpacing(horizontalSpacing);
        myGridView.setVerticalSpacing(verticalSpacing);
    }

    // 设置网格布局的列数
    public void setGridViewNum(int num){
        myGridView.setNumColumns(num);
    }

    // 设置GridView的水平间距
    public void setHorizontalSpacing(int spaceH){
        myGridView.setHorizontalSpacing(spaceH);
    }

    // 设置GridView的垂直间距
    public void setVerticalSpacing(int spaceV){
        myGridView.setVerticalSpacing(spaceV);
    }

//    /**
//     * 向Activity回调当前页面的状态
//     */
//    public interfaces CallBackLoadOrRefreshPull{
//        public void load();
//        public void refresh();
//    }
//
//    CallBackLoadOrRefreshPull myCallBackLoadOrRefreshPull = null;
//
//    /**
//     * 实现MyScrollView的回调,回调当前页面的状态
//     */
//    private class MyCallBackLoadOrRefresh implements MyScrollView.CallBackLoadOrRefresh {
//        @Override
//        public void load() {
//            setFootViewShow();
//            loadDataOrNot = true;
//            myCallBackLoadOrRefreshPull.load();
//        }
//
//        @Override
//        public void refresh() {
//
//        }
//    }
//
//    // 数据加载完毕的方法
//    public void finishLoadData(){
//        setFootViewGone();
//        loadDataOrNot = false;
//    }
//
//    // 设置底部View显示--表示滑动到了底部
//    public void setFootViewShow(){
//        myFootView.setVisibility(View.VISIBLE);
//    }
//
//    // 设置底部View消失--表示数据加载完毕，还没有到达底部
//    public void setFootViewGone(){
//        myFootView.setVisibility(View.INVISIBLE);
//    }
//
//    // 设置底部View显示的数据
//    public void setShowMessage(String data){
//        myShowMessage.setText(data);
//    }

    // 返回GridView
    public MyGridView getMyGridView(){
        return myGridView;
    }

    // 返回ScrollView
    public ScrollView getScrollView(){
        return myScrollView;
    }

//    public static boolean getLoadOrNot(){
//        return loadDataOrNot;
//    }
}
